/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.quixada.adrs.comandos.adrs;

import br.ufc.quixada.adrs.interfaces.Comando;
import br.ufc.quixada.adrs.model.Adrs;
import br.ufc.quixada.adrs.model.Produtor;
import br.ufc.quixada.adrs.model.Visita;
import br.ufc.quixada.adrs.service.VisitaService;
import br.ufc.quixada.adrs.util.Msg;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Caio
 */
public class CmdExcluirVisita implements Comando {

    public String executa(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();

        VisitaService vs = new VisitaService();
        Long id = Long.parseLong(request.getParameter("id"));
        Boolean exclusao = vs.deleteVisita(id);

        if (!exclusao) {
            session.setAttribute("erro", Msg.OPERATIONAL_ERROR_DELETING_VISITA);
            return "/adrs/index.jsp";
        }

        List<Visita> visitas = (List<Visita>) session.getAttribute("visitas");
        for (Visita v : visitas) {
            if (v.getId().equals(id)) {
                visitas.remove(v);
                break;
            }
        }
        Produtor p = (Produtor) session.getAttribute("produtor");
        p.setVisitas(visitas);
        session.setAttribute("produtor", p);

        Adrs adrs = (Adrs) session.getAttribute("user");
        adrs.setVisitas(visitas);
        session.setAttribute("user", adrs);

        session.setAttribute("visitas", visitas);
        session.setAttribute("sucesso", Msg.SUCCESSFULLY_DELETED);
        return "/adrs/adrs_listar_visitas.jsp";
    }
}
